home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9703 / 000059_owner-urn-ietf _Wed Mar 26 17:19:36 1997.msg < prev    next >
Internet Message Format  |  1997-04-01  |  19KB

  1. Received: (from daemon@localhost)
  2.     by services.bunyip.com (8.8.5/8.8.5) id RAA04066
  3.     for urn-ietf-out; Wed, 26 Mar 1997 17:19:36 -0500 (EST)
  4. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1])
  5.     by services.bunyip.com (8.8.5/8.8.5) with SMTP id RAA04060
  6.     for <urn-ietf@services.bunyip.com>; Wed, 26 Mar 1997 17:19:30 -0500 (EST)
  7. Received: from MODEC23090.ABRAXIS.COM by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  8.         id AA02512  (mail destined for urn-ietf@services.bunyip.com); Wed, 26 Mar 97 17:19:23 -0500
  9. Received: from bailey (localhost [127.0.0.1]) by modec23090.abraxis.com (8.8.2/8.8.2) with SMTP id RAA21500; Wed, 26 Mar 1997 17:19:10 -0500 (EST)
  10. Message-Id: <3339A0DD.27A4@rwhois.net>
  11. Date: Wed, 26 Mar 1997 17:19:09 -0500
  12. From: Michael Mealling <michaelm@rwhois.net>
  13. Organization: Network Solutions
  14. X-Mailer: Mozilla 3.01Gold (X11; I; SunOS 5.5 sun4m)
  15. Mime-Version: 1.0
  16. To: Internet-Drafts@ietf.org
  17. Cc: urn-ietf@bunyip.com, rdaniel@acl.lanl.gov,
  18.         Leslie Daigle <leslie@bunyip.com>, michaelm@rwhois.net
  19. Subject: [URN] resend of draft-urn-resolution-services-01.txt
  20. Content-Type: text/plain; charset=us-ascii
  21. Content-Transfer-Encoding: 7bit
  22. Sender: owner-urn-ietf@Bunyip.Com
  23. Precedence: bulk
  24. Reply-To: Michael Mealling <michaelm@rwhois.net>
  25. Errors-To: owner-urn-ietf@Bunyip.Com
  26.  
  27. URN Working Group                                                   M.Mealling
  28. INTERNET-DRAFT                                         Network Solutions, Inc.
  29. Expires six months from March 1997                              Ron Daniel Jr.
  30. Intended category: Standards Track              Los Alamos National Laboratory
  31.  
  32.                            URN Resolution Services
  33.  
  34. Status of this Memo
  35.  
  36.      This document is an Internet-Draft. Internet-Drafts are working
  37.      documents of the Internet Engineering Task Force (IETF), its areas,
  38.      and its working groups. Note that other groups may also distribute
  39.      working documents as Internet-Drafts.
  40.  
  41.      Internet-Drafts are draft documents valid for a maximum of six
  42.      months and may be updated, replaced, or obsoleted by other documents
  43.      at any time. It is inappropriate to use Internet-Drafts as reference
  44.      material or to cite them other than as work in progress.
  45.  
  46.      To learn the current status of any Internet-Draft, please check
  47.      the 1id-abstracts.txt listing contained in the Internet-Drafts
  48.      Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net
  49.      (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  50.  
  51. Abstract
  52.  
  53. Fetching the resource identified by a Uniform Resource Identifier (URI) [3]
  54. is only one of the operations that can be performed on a URI. We might ask
  55. for a list of other identifiers that are aliases for the original URI, a
  56. bibliographic description of the resource the URI denotes, etc. Because of
  57. the diverse nature of resources on the network, it may be difficult (or
  58. impossible) to offer all those operations, therefore a means of indicating
  59. what services are and are not supported by a given resolver must be
  60. specified. This memo gives an initial set of those operations, and the
  61. requirements that must be met when those operations are encoded in a
  62. protocol.
  63.  
  64. 1. Introduction
  65.  
  66. In the course of formulating current proposals [1] regarding Uniform
  67. Resource Names [2] it became apparent that requiring servers to deal with
  68. all desired functions or requiring clients to deal with complicated
  69. information returned by a server was unrealistic and a barrier to adoption.
  70. There needed to be some way for a client to be able to pick between a server
  71. that specialized in the complex and another that specialized in the simple
  72. (but fast). Also, in subsequent conversations it became obvious that, in
  73. most cases, some of the operations were inappropriate or difficult for
  74. certain identifiers. For example, ISSNs identify books or magazines that are
  75. serial in nature. An operation to return the resource for an ISSN pointing
  76. to "Time" magazine would result in dumping hundreds of thousands of pages of
  77. "Time" onto a user's machine. This does not seem like a reasonable thing to
  78. do in the normal case.
  79.  
  80. The Problem
  81.  
  82. The problem, stated simply, was one of a client needing to convey to a
  83. service some idea of the desired operation on a URI that the client is
  84. currently talking about. The problem was also that the server needed to
  85. convey to a client which network entity could perform which of the
  86. operations that were allowed for that particular URI.
  87.  
  88. This problem requires we specify some well understood set of identifiers
  89. that could identify the operation that a particular network entity either
  90. desired or could perform. But it was also realized that an exhaustive set
  91. would both be impossible and not very necessary. Thus, while this document
  92. will list several operations, it will also lay out the requirments for
  93. specifying new operations.
  94.  
  95. Design Criteria
  96.  
  97. The design criteria used to meet these requirements were fairly simple. The
  98. need to simply identify the operation with some token and know its operands
  99. and algorithm was seen as sufficient to meet the requirements. Thus, as with
  100. most things simple the simple set of design criteria ended up being: simple,
  101. extensible, generic and short.
  102.  
  103. As with most design requirements there are several that are at cross
  104. purposes. Thus for anyone adding to this list these design criteria should
  105. be kept in mind and balanced against each other.
  106.  
  107. 2. General Specification
  108.  
  109. In order to provide a framework both for the specifications in this document
  110. and for new ones to be written by others the following requirments are
  111. placed on any documents that seek to specify new operations.
  112.  
  113. Any specification of a member of this set of operations MUST contain at
  114. least the following pieces of information with respect to its operands, its
  115. algorithm and its output.
  116.  
  117.    * 2.1 Operands
  118.  
  119.      Must contain the following pieces of information:
  120.         o name of the operation
  121.         o mnemonic for the operation
  122.         o number of operands
  123.         o type of each operand
  124.         o format of each operand
  125.  
  126.    * 2.2 Algorithm Must either specify the exact algorithm for the operation
  127.      or must specify that the algorithm is opaque and defined by the server.
  128.  
  129.  
  130.    * 2.3 Output Must either specify one of the following:
  131.         o there is no output
  132.         o the output is undefined
  133.         o the output itself and its content
  134.         o the fact that the output is an object and that objects type and
  135.           format.
  136.  
  137. 3. Encoding The Operations
  138.  
  139. To be useful these operations have to be used within some system or
  140. protocol. In many cases these systems and protocols will place restrictions
  141. on which operations make sense and how those that do are syntactically
  142. represented.
  143.  
  144. Also, a given system or protocol will have its own output formats that will
  145. restrict the output formats of a given operation. Additionally, a given
  146. protocol may have better solution for output than the ones given here. For
  147. example, the N2L result may be encoded in a protocol specific manner that
  148. causes the client to treat it as special.
  149.  
  150. Thus, the requirements on encoding these operations within a given system
  151. are the following:
  152.  
  153.    * which subset of the operations are allowed
  154.    * how the operator is encoded
  155.    * how the operands are encoded
  156.    * what the output format is
  157.  
  158. For those system that can use it, MIME [4] is the suggested output format.
  159. The operations listed here use the text/uri-list Internet Media Type or IMT
  160. [4] that is specified in Appendix A. Other system are strongly encouraged to
  161. use this IMT. In the case where a system does not use an IMT a justification
  162. should be given.
  163.  
  164. 4. The Incomplete Set
  165.  
  166. 4.1 N2L (URN to URL)
  167.  
  168.    * name: URN to URL
  169.    * mnemonic: N2L
  170.    * number of operands: 1
  171.    * type of each operand: 1st operand is a URN
  172.    * format of each operand: 1st operand is encoded as a URI
  173.    * algorithm: opaque
  174.    * output: 1 and only one URL encoded in a text/uri-list
  175.  
  176. This operation is used to map a single URN to a single URL. It is used by
  177. light weight clients that do not have the ability to select from a list of
  178. URLs or understand a Uniform Resource Characteristic (URC). The algorithm
  179. for this mapping is dependent on the URN namespace.
  180.  
  181. 4.2 N2Ls (URN to URLs)
  182.  
  183.    * name: URN to URLs
  184.    * mnemonic: N2LS
  185.    * number of operands: 1
  186.    * type of each operand: 1st operand is a URN
  187.    * format of each operand: 1st operand is encoded as a URI
  188.    * algorithm: opaque
  189.    * output: a list of 0 or more URLs encoded in a text/uri-list
  190.  
  191. This operation is used to map a single URN to 0 or more URLs. It is used by
  192. a client that can pick from a list of URLs based on some criteria that is
  193. important to the client. The client should not make any assumptions about
  194. the order of the URLs returned.
  195.  
  196. No matter what the particular media type, the result MUST be a list of the
  197. URLs that may be used to obtain an instance of the resource identified by
  198. the URN. All URIs shall be encoded according to the URI specification [6].
  199.  
  200. 4.3 N2R (URN to Resource)
  201.  
  202.    * name: URN to Resource
  203.    * mnemonic: N2R
  204.    * number of operands: 1
  205.    * type of each operand: 1st operand is a URN
  206.    * format of each operand: 1st operand is encoded as a URI
  207.    * algorithm: opaque
  208.    * output: an instance of the resource named by the URN. Encoding is not
  209.      specified.
  210.  
  211. This operation is used to return a single instance of the resource that is
  212. named by the URN. The format of the output is dependent on the resource
  213. itself.
  214.  
  215. 4.4 N2Rs (URN to Resources)
  216.  
  217.    * name: URN to Resources
  218.    * mnemonic: N2Rs
  219.    * number of operands: 1
  220.    * type of each operand: 1st operand is a URN
  221.    * format of each operand: 1st operand is encoded as a URI
  222.    * algorithm: opaque
  223.    * output: 0 or more instances of the resource named by the URN. Encoding
  224.      is not specified.
  225.  
  226. This operation is used to return multiple instances of a resource, for
  227. example, GIF and JPEG versions of an image. The judgment about the resources
  228. being "the same" resides with the naming authority that issued the URN.
  229.  
  230. The output shall be a MIME multipart/alternative [4] message with the
  231. alternative versions of the resource in separate body parts. If there is
  232. only one version of the resource identified by the URN, it MAY be returned
  233. without the multipart/alternative wrapper.
  234.  
  235. 4.5 N2C (URN to URC)
  236.  
  237.    * name: URN to URC
  238.    * mnemonic: N2C
  239.    * number of operands: 1
  240.    * type of each operand: 1st operand is a URN
  241.    * format of each operand: 1st operand is encoded as a URI
  242.    * algorithm: opaque
  243.    * output: A Uniform Resource Characteristic. Encoding is not specified.
  244.  
  245. URCs (Uniform Resource Characteristics) are descriptions of other resources.
  246. This request allows the client to obtain a description of the resource
  247. identified by a URN, as opposed to the resource itself or simply the
  248. resources URLs. The description might be a bibliographic citation, a digital
  249. signature, a revision history, etc. This draft does not specify the content
  250. of any response to a URC request. That content is expected to vary from one
  251. server to another.
  252.  
  253. 4.6 N2Ns (URN to URNs)
  254.  
  255.    * name: URN to URNs
  256.    * mnemonic: N2Ns
  257.    * number of operands: 1
  258.    * type of each operand: 1st operand is a URN
  259.    * format of each operand: 1st operand is encoded as a URI
  260.    * algorithm: opaque
  261.    * output: A list of URNs encoded in a text/uri-list IMT.
  262.  
  263. While URNs are supposed to identify one and only one resource, that does not
  264. mean that a resource may have one and only one URN. For example, consider a
  265. resource that has something like "current-weather-map" for one URN and
  266. "weather-map-for-datetime-x" for another URN. The N2Ns service request lets
  267. the client obtain lists of URNs that are believed equivalent at the time of
  268. the request. As the weathermap example shows, some of the equivalences will
  269. be transitory, so the the server should convey the length of time for which
  270. the mapping is valid. The result is a list of all the URNs, known to the
  271. server, which identify the same resource as the input URN. The result shall
  272. be encoded in a text/uri-list IMT.
  273.  
  274. 4.7 L2Ns (URL to URNs)
  275.  
  276.    * name: URN to URNs
  277.    * mnemonic: N2Ns
  278.    * number of operands: 1
  279.    * type of each operand: 1st operand is a URN
  280.    * format of each operand: 1st operand is encoded as a URI
  281.    * algorithm: opaque
  282.    * output: A list of URNs encoded in a text/uri-list IMT.
  283.  
  284. This operation is used to discover the URN associated with a particular URL.
  285. As with all operations dealing with URNs how that URN is mapped is
  286. completely dependent on the rules specified by the namespace.
  287.  
  288. 4.8 L2Ls (URL to URLs)
  289.  
  290.    * name: URL to URLs
  291.    * mnemonic: L2Ls
  292.    * number of operands: 1
  293.    * type of each operand: 1st operand is a URL
  294.    * format of each operand: 1st operand is encoded as a URI
  295.    * algorithm: opaque
  296.    * output: A list of URLs encoded in a text/uri-list IMT.
  297.  
  298. This operation is used to discover URLs that are considered equal to each
  299. other. As with the N2N operation "equality" is defined by the server and is
  300. opaque to the client.
  301.  
  302. 4.9 L2C (URL to URC):
  303.  
  304.    * name: URL to URC
  305.    * mnemonic: L2C
  306.    * number of operands: 1
  307.    * type of each operand: 1st operand is a URL
  308.    * format of each operand: 1st operand is encoded as a URI
  309.    * algorithm: opaque
  310.    * output: A URC.
  311.  
  312. This operation is used to retrieve the URC for a given URL. As with most
  313. other URI mappings the mapping function is opaque. As with any other
  314. operation that returns a URC, the output format is unspecified.
  315.  
  316. 4.10 I2I (URI to URI):
  317.  
  318.    * name: URI to URI
  319.    * mnemonic: I2I
  320.    * number of operands: 1
  321.    * type of each operand: 1st operand is a URL
  322.    * format of each operand: 1st operand is encoded as a URI
  323.    * algorithm: opaque
  324.    * output: A URI.
  325.  
  326. This operation is used to map any arbitrary URI to any other arbitrary URI.
  327. No other assertions are made about whether or not the URI exhibits
  328. characteristics of URNs or URLs.
  329.  
  330. 4.11 N2I (URI to URI):
  331.  
  332.    * name: URN to URI
  333.    * mnemonic: N2I
  334.    * number of operands: 1
  335.    * type of each operand: 1st operand is a URL
  336.    * format of each operand: 1st operand is encoded as a URI
  337.    * algorithm: opaque
  338.    * output: A URI.
  339.  
  340. This operation is used to map a URN to any other arbitary URI. No other
  341. assertions are made about whether or not the URI exhibits characteristics of
  342. URNs or URLs.
  343.  
  344. 4.11 I=I (Is URI equal to URI):
  345.  
  346.    * name: URI = URI
  347.    * mnemonic: I=I
  348.    * number of operands: 2
  349.    * type of each operand: Both operands are URIs
  350.    * format of each operand: both operands are encoded as a URIs
  351.    * algorithm: opaque
  352.    * output: TRUE or FALSE
  353.  
  354. This operation is used to determine whether two given URIs are considered to
  355. be equal by the server being asked the question. The algorithm used to
  356. determine equality is opaque. No assertions are made about whether or not
  357. the URIs exhibits characteristics of URNs or URLs.
  358.  
  359. 6. The text/uri-list Internet Media Type
  360.  
  361.      [This section will be augmented or replaced by the registration of
  362.      the text/uri-list IMT once that registration has been performed].
  363.  
  364. Several of the resolution service requests, such as N2Ls, N2Ns, L2Ns, L2Ls,
  365. result in a list of URIs being returned to the client. The text/uri-list
  366. Internet Media Type is defined to provide a simple format for the automatic
  367. processing of such lists of URIs.
  368.  
  369. The format of text/uri-list resources is:
  370.  
  371.   1. Any lines beginning with the '#' character are comment lines and are
  372.      ignored during processing. (Note that '#' is a character that may
  373.      appear in URIs, so it only denotes a comment when it is the first
  374.      character on a line).
  375.   2. The remaining non-comment lines MUST be URIs (URNs or URLs), encoded
  376.      according to the URI specification RFC[6]. Each URI shall appear on one
  377.      and only one line.
  378.   3. As for all text/* formats, lines are terminated with a CR LF pair,
  379.      although clients should be liberal in accepting lines with only one of
  380.      those characters.
  381.   4. The order of the URIs given MUST be preserved upon retransmission. The
  382.      client should not make any inferences about what the order of the
  383.      returned list means.
  384.  
  385. In applications where one URI has been mapped to a list of URIs, such as in
  386. response to the N2Ls request, the first line of the text/uri-list response
  387. SHOULD be a comment giving the original URI.
  388.  
  389. An example of such a result for the N2L request is shown below in figure 1.
  390.              --------------------------------------------------
  391.  
  392.      # urn:cid:foo@huh.org
  393.      http://www.huh.org/cid/foo.html
  394.      http://www.huh.org/cid/foo.pdf
  395.      ftp://ftp.foo.org/cid/foo.txt
  396.  
  397.                 Figure 1: Example of the text/uri-list format
  398.              --------------------------------------------------
  399.  
  400. 7. References
  401.  
  402. [1] Ron Daniel and Michael Mealling, "Resolution of Uniform Resource
  403.     Identifiers using the Domain Name System", draft-ietf-urn-naptr-02.txt,
  404.     February, 1997.
  405.  
  406. [2] R. Moats, "URN Syntax", draft-ietf-urn-syntax-02, Jan. 1997.
  407.  
  408. [3] RFC 1630, "Universal Resource Identifiers in WWW: A Unifying Syntax for
  409.     the Expression of Names and Addresses of Objects on the Network as
  410.     used in the World-Wide Web", T. Berners-Lee, June 1994.
  411.  
  412. [4] RFC 1521, "MIME (Multipurpose Internet Mail Extensions) Part One:
  413.     Mechanisms for Specifying and Describing the Format of Internet Message
  414.     Bodies", Borenstein, N. and and N. Freed, Bellcore, Innosoft,
  415.     September 1993.
  416.  
  417. 8. Security Considerations
  418.  
  419. Communications with a server may be of a sensitive nature. Some servers will
  420. hold information that should only be released to authorized users. The
  421. results from servers may be the target of spoofing, especially once
  422. electronic commerce transactions are common and there is money to be made by
  423. directing users to pirate repositories rather than repositories which pay
  424. royalties to rights-holders. Server requests may be of interest to traffic
  425. analysts. The requests may also be subject to spoofing.
  426.  
  427. 9. Author Contact Information
  428.  
  429. Michael Mealling
  430. Network Solutions
  431. 505 Huntmar Park Drive
  432. Herndon, VA 22070
  433. voice: (703)742-0400
  434. fax: (703)742-9552
  435. email: michaelm@rwhois.net
  436.  
  437. Ron Daniel
  438. Advanced Computing Lab, MS B287
  439. Los Alamos National Laboratory
  440. Los Alamos, NM, USA, 87545
  441. voice: +1 505 665 0597
  442. fax: +1 505 665 4939
  443. email: rdaniel@lanl.gov
  444.  
  445. -- 
  446. ------------------------------------------------------------------------------
  447. Michael Mealling    | 505 Huntmar Park Drive       | Phone:  (703)742-0400
  448. Software Engineer    | Herndon, VA 22070           | Fax:    (703)742-9552
  449. Network Solutions    | <URL:http://www.netsol.com>  | michaelm@rwhois.net